SIG/M volume 10		games, disassembler, North Star Basic patch
			for CP/M, CDOS simulator, and other utilities


10.01	LANES.BAS	 6K	Games using MicroSoft Basic
10.02	JOURNAL.BAS	 2K			
10.03	GAMMONB.BAS	15K		    
10.04	BLACKBOX.BAS	 3K	
10.05	BOGGLE.BAS	 1K	    
10.06	GAMMON.H19	11K		Heath terminal adaptation
10.07	NIM1.H19	 8K
10.08	OTHELLO.H19	 5K
10.09	STARWAR2.H19	12K
10.10	ALS8CPM.ASM	17K	Converts Processor Tech assembler
				files to CP/M format
10.11	DIV16B.ASM	 1K	16 bit division by 8 bit divisor
10.12	DSIM.LIB	 5K	CDOS calls for CP/M
10.13	NSCPM48.ASM	22K	Patches to run North Star Basic
				under CP/M
10.14	NSCPM48.DOC	 8K
10.15	RETURN48.COM	 1K
10.16	REZ.ASM		33K	RESOURCE resurrected with .ASM
10.17	REZ.COM		 7K		a nifty 8080 disassembler
10.18	REZ.DOC		26K		modified for Z80 TDL op codes
10.19	REZ.Z80		36K		modified for Zilog op codes
1.0 INTRODUCTION

A special interface between North Star BASIC (Rel 4) and CPM (V1.4 and V2.0)
has been implemented.  This interface allows almost all of the North Star
BASIC functions and capabilities to be used on any CPM system.  With suitable
patching, the interface will run on Cromemco CDOS (V1.07).  The following
two sections describe the interface and its use.


2.0 NORTH STAR DOS TO CPM COMMAND MAPPING

Assuming you are familiar with North Star DOS and CPM, the following commands
are used in conjunction with the North Star BASIC (Rel 4) which runs on CPM:

		       North Star DOS		 CPM

A. List directory	 LI<Unit #>	   DIR (use Ctl-P
					   toggle print)

B. Create file		 CR

   (1) Type 2				   None; creates &
					   allocates disk
					   space automatic-
					   ally when you
					   NSAVE in BASIC.
					   Name will appear
					   in directory as
					   AAAAAAAA.2

   (2) Type <>2				   In CPM, save a
					   dummy file to
					   create file lengths
					   of NNN blocks by
					   using SAVE NNN 
					   AAAAAAAA.T where
					   T=type.  It's better
					   to use CREATE in BASIC.

C. Delete		 DE		   Use CPM's ERA
					   command

D. Compact		 CO		   Not required.
					   CPM takes care of
					   this.  Automatical-
					   ly allocates & de-
					   allocates type 2
					   file space.

E. Type			 TY		   Not required.  See
					   B. above.

F. Load & execute	 GO		   None.  All .COM
      program				   programs load &
					   execute at 100H in
					   CPM.

G. Jump to address	 JP		   Not available in
					   CPM

H. Copy file		 CF		   Use PIP program.
					   Use SYSGEN program
					   for CPM

I. Copy disk		 CD		   Use PIP & SYSGEN
					   programs

J. Read & write		 RD, WR		   Not available
      disk sectors

K. Load & save file	 LF, SF		   Not completely
					   available.  Can do
					   using DDT and SAVE
					   in CPM.  All SAVEs
					   assume RAM address
					   is at 100H; e.g., use .2
					   & .3 extensions for
					   type 2 & 3 files,
					   respectively.

L. Initialize disk	 IN		   Use a format program.
					   Be careful; will
					   destroy programs.

M. Diagnostic		 DT		   Use disk test
					   program.  Be care-
					   ful; will destroy
					   all programs.


3.0 NORTH STAR BASIC COMMANDS (REL 4)

The following is a list of capabilities of the interface with BASIC:

A. CREATE - Will create files by reserving disk space by saving dummy
files of the size and type specified.  This function will be slower than
with North Star since in order to reserve disk space in CPM, you must actually
save a file of the size specified.  See item L. in the next section for the
situation where the disk becomes full during a CREATE.  BASIC has been patched
to remove the file size limit of 350 blocks.  The current limit is 4095 blocks
which should suffice for 8" quad density.  This allows up to a 1 Megabyte
file to be created.  -4096 (F000H) has been patched into location DF7H.

B. DESTROY - No change

C. OPEN - No change

D. CLOSE - No change

E. READ - No change

F. WRITE - No change

G. FILE - No change

H. SAVE - No change; file must already exist in the directory

I. NSAVE - No change; use if file does not exist in directory

J. LOAD - No change

K. APPEND - No change

L. RND(-1) - Will not generate a random number

M. MEMSET and End of BASIC's Memory - MEMSET will give an ARGUMENT ERROR when
you try to set the address at BDOS or above.  The end address of memory is set
to the beginning of BDOS-1 when BASIC is first loaded and executed.

N. BSPC - BASIC has been patched at 817H to echo the Backspace character
(Ctl-H = 8H).

O. LINECT - BASIC has been patched at 80EH to a line length of 132.


4.0 SPECIAL FEATURES AND NOTES

A. Drives 1 and 2 in North Star DOS/BASIC are synonomous with drives A and B
in CPM.

B. CPM does not allow you to SAVE a file larger that available memory.  Thus
if you have large data files to create, you must create several small files
using the save technique above and concatentate them using the PIP concatena-
tion feature.  The size of the large file should equal the sum of the sizes of
the small files.  It is recommended that you create a file in BASIC using
CREATE; it is easier to do.  

C. The interface has an added feature which allow you to freeze and unfreeze
the screen using the Control-S toggle as in CPM while listing on the console
device.

D. Your CPM or CPM derivative must have a standard BIOS jump table up to the
PUNCH device jump address and standard CPM BDOS calls.

E. The CPM CONSOLE IN and OUT device is device number 0 in BASIC.

F. The CPM LIST device is device number 1 in BASIC.

G. The CPM PUNCH device is device number 2 in BASIC.  One suggested use is
as a list device with paging.

H. Make sure you do not have files in the directory with the same name and one
character type.  Except for LOAD, APPEND, SAVE and NSAVE, BASIC disk commands
will work with the first directory entry with a matching name and ambiguous
one character type.  Types with more than one character will be ignored.

I. The base or start address of BASIC is 800H (2048D).  The interface starts
at 100H.  A jump table equivalent to that in North Star DOS starting at 200DH
is at 103H.

J. Data file directories are kept in a buffer which holds 10 open files.  These
files are purged on a FIFO basis.  If new files are opened and the buffer is
full, the oldest one is purged.  Be careful that your program does not keep a
file open any longer than is necessary.

K. A disk full, directory full, or file extension error gives an ARGUMENT
ERROR.

L. When using CREATE and disk becomes full, the normal BASIC error message
or error number will not be generated.  This is because of the way the
interface had to be implemented.  When this occurs, the message 'DISK/DIR FULL'
will be printed on the console, and the program will abort and return to CPM.

M. The program RETURNP.COM can be used (e.g., in L. above) to return to BASIC
without scratching the program.  Just type RETURNP(cr).

N. The program RETURNV.COM can be used (e.g., in L. above) to return to BASIC
without scratching the program or the variables.  Just type RETURNV(cr).

O. The programs in M. and N. above put the appropriate jump (i.e., 804H and
814H) into location 139H in the interface.

P. To incorporate the turnkey start up of BASIC,

	1. Load and execute BASIC by typing NSBASIC(cr)
	2. Type  1000 CHAIN "program name"(cr)
	3. Type  BYE(cr)
	4. Type  SAVE 60 NSBAS4.COM(cr) [or any program name.COM]
	5. Type  DDT NSBAS4.COM(cr)
	6. Type  S80F(cr)
	7. Type  0(cr)
	8. Type  .(cr)
	9. Type  Ctl-C(cr)
	10.Type  SAVE 60 NSBAS4.COM(cr)

The program will now load and execute after loading and executing BASIC.

Q. For those using CDOS V1.07, the following patches are required for
compatibility; use DDT or DEBUG to patch; then SAVE 60 NSBAS4.COM:

	ADDRESS		CURRENT CODE		PATCH

	 23DH		21H,89H,0,CDH,D4H,4	11H,9,0,19H,0,0
	 3A4H		CDH,D1H,4		0,0,0
	 3ADH		CDH,D1H,4		0,0,0
	 4B5H		21H,8FH,0,CDH,D4H,4	11H,0FH,0,19H,0,0

These patches only apply to Revision 8 of the interface.

RETURNP.COM and RETURNV.COM need to be changed also.  The easiest way is to
use DDT or DEBUG after the above patches are applied and BASIC resaved.  Load
in BASIC using DDT; patch location 139H with JMP 804H or JMP 814H for
RETURNP.COM or RETURNV.COM, respectively; exit DDT with a Control-C; then
SAVE 1 RETURNP.COM or RETURV.COM.

R. Revision 8 is identified by a period (.) preceeding the file type when
doing a CAT.  All previous versions used a blank.


11/20/79
